Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

WinDbg

帖子发起人: Blade   发起时间: 2013-08-10 21:01 下午   回复: 6

Print Search
帖子排序:    
   2013-08-10, 21:01 下午
tongzhipeng 离线,最后访问时间: 2013/10/4 8:44:36 Blade

发帖数前50位
注册: 2013-07-04
发 贴: 28
寻找 大内存页面
Reply Quote

《软件调试》 2.7.6 4M内存页情况 第 60 页, 有个例子将系统中的线性地址 0x94a0d678 翻译成 物理地址。 我自己做实验的时候, 不知道拿什么地址来做, 然后我就去找大内存页面, 从!process 0 0 里面 的 DirBase 里面 随便找几个PDE表, 但是看到位7 都是0, 没能找到大内存页, 后来试了很多个 找到一个带L 大页面标志的PDE, 但是还是不知道用什么虚拟地址。。。囧.....所以请教怎样找到大内页, 首先CR4里面的 PSE标志位 我确认过, 系统是确认了大页面支持的, 小弟在此向各位大侠和张老师求教了。

对了, 有没有交流群啊, 我的QQ: 840211593求加.


IP 地址: 已记录   报告
   2013-08-11, 08:48 上午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 寻找 大内存页面
Reply Quote

通常NT内核本身会使用大页面,所以可以观察PsLoadedModuleList这个地址。

每次内核调试开始时,WinDBG都会显示这个地址:

Kernel base = 0x81808000 PsLoadedModuleList = 0x8191fc70

以下是网友提议的QQ群:

http://advdbg.org/forums/5851/ShowPost.aspx

 


IP 地址: 已记录   报告
   2013-08-11, 13:09 下午
tongzhipeng 离线,最后访问时间: 2013/10/4 8:44:36 Blade

发帖数前50位
注册: 2013-07-04
发 贴: 28
Re: 寻找 大内存页面
Reply Quote

张老师, 你好,  我用PsLoadedModuleList 的 地址, 做实验, 但是结果好像不是大内存页, 我好像不是通常的情况...麻烦您抽空帮我看看

lkd> .restart
Unable to read head of debugger data list
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Symbol search path is: srv*D:\Symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
*******************************************************************************
WARNING: Local kernel debugging requires booting with kernel
debugging support (/debug or bcdedit -debug on) to work optimally.
*******************************************************************************
Windows XP Kernel Version 2600 (Service Pack 3) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp_sp3_gdr.101209-1647
Kernel base = 0x804d8000 PsLoadedModuleList = 0x805644c0
Debug session time: Sun Aug 11 13:02:49.125 2013 (GMT+8)
System Uptime: 0 days 0:57:54.750
lkd> !pte 805644c0
               VA 805644c0
PDE at   C0300804        PTE at C0201590
contains 0003D163      contains 00564163
pfn 3d -G-DA--KWEV    pfn 564 -G-DA--KWEV

lkd> !process 0 0 system
PROCESS 897ac7c0  SessionId: none  Cid: 0004    Peb: 00000000  ParentCid: 0000
    DirBase: 0a040000  ObjectTable: e1001da8  HandleCount: 242.
    Image: System

lkd> !dd a040000 + 805/4*4
# a040804 0003d163 0003e163 09043963 09044963
# a040814 09045963 09046963 09047963 09048963
# a040824 09049963 0904a963 0904b963 0904c963
# a040834 0904d963 0904e963 0904f963 09050963
# a040844 09051963 09052963 09053963 09054963
# a040854 09055963 09056963 09057963 09058963
# a040864 09059963 0905a963 0905b963 0905c963
# a040874 0905d963 0905e963 0905f963 09060963
lkd> .formats 3d163
Evaluate expression:
  Hex:     0003d163
  Decimal: 250211
  Octal:   00000750543
  Binary:  00000000 00000011 11010001 01100011
  Chars:   ...c
  Time:    Sun Jan 04 05:30:11 1970
  Float:   low 3.5062e-040 high 0
  Double:  1.23621e-318
lkd> !dd 3d000 + 164*4
#   3d590 00564163 00565163 00566163 00567163
#   3d5a0 00568163 00569163 0056a163 0056b163
#   3d5b0 0056c163 0056d121 0056e121 0056f121
#   3d5c0 00570121 00571121 00572121 00573121
#   3d5d0 00574121 00575121 00576121 00577121
#   3d5e0 00578121 00579121 0057a121 0057b121
#   3d5f0 0057c121 0057d121 0057e121 0057f121
#   3d600 00580121 00581121 00582121 00583121
lkd> !dd 5644c0
#  5644c0 897fd390 891d9e50 00000000 00000000
#  5644d0 00000000 00000000 00000000 00000000
#  5644e0 8056b960 80568b80 00000000 00000000
#  5644f0 00000000 00000000 00000000 00000000
#  564500 00000000 00000000 00000000 00000000
#  564510 00000000 00000000 80551800 80551000
#  564520 80550400 8054f000 80553600 80552000
#  564530 00000000 0000000b 0000000b 8965cb50
lkd> dd 805644c0
805644c0  897fd390 891d9e50 00000000 00000000
805644d0  00000000 00000000 00000000 00000000
805644e0  8056b960 80568b80 00000000 00000000
805644f0  00000000 00000000 00000000 00000000
80564500  00000000 00000000 00000000 00000000
80564510  00000000 00000000 80551800 80551000
80564520  80550400 8054f000 80553600 80552000
80564530  00000000 0000000b 0000000b 8965cb50

按照上面的实验结果, 这个地址应该是在4KB页面上的。


IP 地址: 已记录   报告
   2013-08-11, 18:40 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 寻找 大内存页面
Reply Quote

恩,不是大页面。什么配置的系统。

下面是VirtualBox中的XP SP3的情况,用了大页面:

Windows XP Kernel Version 2600 (Service Pack 3) UP Free x86 compatible

Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055b1c0

kd> !pte 0x8055b1c0
                    VA 8055b1c0
PDE at C0300804            PTE at C020156C
contains 0003E163004001E3  contains 0000000000000000
pfn 16300400  -GLDA--KWEV  LARGE PAGE pfn 1630055b


IP 地址: 已记录   报告
   2013-08-11, 19:27 下午
tongzhipeng 离线,最后访问时间: 2013/10/4 8:44:36 Blade

发帖数前50位
注册: 2013-07-04
发 贴: 28
Re: 寻找 大内存页面
Reply Quote

我是用WMWARE 也是XP SP3系统, 系统刚装没几天, 没有做过特殊的配置。囧....

http://image142-c.poco.cn/mypoco/myphoto/20130811/19/17400567820130811193808072.png


IP 地址: 已记录   报告
   2013-08-11, 22:10 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 寻找 大内存页面
Reply Quote

大页面支持是可配置的,检查一下虚拟机的CPU设置中是否有相关的选项...


IP 地址: 已记录   报告
   2013-08-12, 00:04 上午
tongzhipeng 离线,最后访问时间: 2013/10/4 8:44:36 Blade

发帖数前50位
注册: 2013-07-04
发 贴: 28
Re: 寻找 大内存页面
Reply Quote

我找不到配置....  只是确定支持PSE。 网上找了N多资料, 百度 谷歌都用了, 还尝试用蹩脚的英文搜索 “Enable 4M Page", "Enable PSE",  "Enable Large Page", 貌似都没找到什么方法配置....算了这个不纠结, 这个原理已经懂了。 谢谢张老师

0: kd> .formats @cr4
Evaluate expression:
  Hex:     000006d9
  Decimal: 1753
  Octal:   00000003331
  Binary:  00000000 00000000 00000110 11011001
  Chars:   ....
  Time:    Thu Jan 01 08:29:13 1970
  Float:   low 2.45648e-042 high 0
  Double:  8.66097e-321

 

 


IP 地址: 已记录   报告
高端调试 » 软件调试 » WinDbg » 寻找 大内存页面

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.